// baseURL
// 添加token和请求头
// 添加加载提示
// 封装post，get简单写法
// 改装promise结构


// 基础url
const baseURL="https://ucenter-api.xgimi.com/v1"

function request(option){
	// 如果传入参数url不是以http,https开头
	if(!/^https?/.test(option.url)){
		option.url = baseURL+option.url;
	}
	// 默认的请求头（根据后端的要求）
	var header = {
		// source:1,
		channel:1,
		token:uni.getStorageSync("token"), //从本地存储获取token
	}
	// 如果有传入覆盖默认的
	if(option.header){
		option.header = {...header,...option.header}
	}else{
		// 如果没有就用默认的
		option.header = header;
	}
	// 如果有加载提示，显示加载提示
	if(option.showLoading){
		uni.showLoading(option.showLoading)
	}
	return new Promise((resolve,reject)=>{
		uni.request({
			...option,
			success(res){
				// 做了错误处理
				if(res.data.code!==200){
					uni.showToast({
						title:res.data.message||'请求失败',icon:'error'
					})
				}
				// 返回的数据部分
				resolve(res.data)
			},
			fail(err){
				// 错误处理
				uni.showToast({
					title:'网络请求失败',
					icon:'error'
				})
				// 还可以统一处理错误
				reject(err)
			},
			complete(){
				// 完成后隐藏加载提示
				if(option.showLoading){
					uni.hideLoading()
				}
			}
		})
	})
	
}
// 导出
export default request;
// request的get简写方法
request.get = function(url,data={},config={}){
	return request({
		url,
		method:"GET",
		data:data,
		...config
	})
}

// request.post 简写方法
request.post = function(url,data={},config={}){
	return request({
		url,
		method:"POST",
		data:data,
		...config
	})
}

